package student_system.UnderAccessDBclass;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Objects;
import java.util.Properties;

//获取连接和关闭连接方法
public class Druid_utils {

    //静态数据源
    //它负责建立与数据库的连接，当在应用程序中访问数据库时
    //不必编写连接数据库的代码，直接引用DataSource获取数据库的连接对象即可。
    // 用于获取操作数据Connection对象。
    private  static  DataSource ds;
    //静态代码块完成ds的初始化
    static{
            Properties properties=new Properties();
//        String path = Objects.requireNonNull(Druid_utils.class.getResource("/")).getPath();
//        System.out.println(path);

        try{
                properties.load(new FileInputStream("C:\\Users\\levovo\\Desktop\\druid.properties"));
                //创建一个指定参数的数据库连接池
                ds= DruidDataSourceFactory.createDataSource(properties);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        //getConnection方法
        public static Connection getConnection() throws SQLException {
            return ds.getConnection();
    }
    //关闭连接
    //将使用的Connection放回连接池
    public static void close(ResultSet set, Statement statement, Connection connection) {
        //判断是否为null
        try{
            if (set != null) {
                set.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            //将编译异常转成运行异常抛出
            throw new RuntimeException(e);
        }

    }

//    public static void main(String[] args) {
//
//    }

}
